Many digital communication systems employ error control coding to attempt to correct errors in messages that may occur when the message is transmitted over a noisy channel, such as a wireless channel. In general, an encoder at the sender maps the message to a corresponding encoded message. The encoded message is then transmitted across the channel instead of the message. The transmitted message, which may be corrupted by the noise in the channel, is received by the recipient and forwarded to a decoder. The decoder maps the received data to its nearest corresponding message.
Generally, an encoded message can be thought of as the unencoded message with redundancy strategically added. The redundancy is exploited by the decoder to increase the probability of properly decoding the message. Depending on how noisy the channel is (i.e. depending on how many errors are introduced during transmission across the channel), the decoded, message may not correspond to the message that was actually, sent, in which case a decoding error has occurred. Error control codes are well understood, and examples include convolutional codes and linear block codes.
In some applications, further redundancy is added to the message prior to encoding in order to perform error detection in addition to error correction. A typical example is appending a cyclic redundancy check (CRC) code to a message to form a new message, and then encoding this new message using an error control code. The output of the decoder will be a decoded message and a corresponding decoded CRC check code. If the decoded CRC, check code is not the correct CRC check code for the decoded message, then the recipient assumes that message has been decoded in error. In this case, the recipient may request re-transmission of the message.
Often in mobile applications, important control information is transmitted between the in mobile device and a base station. This control information may relate to device setup onto handover between cells for example. It is important that such information be decoded correctly. In some applications, an on-going call may be dropped if such control information is not decoded correctly.
There is a desire to increase the probability of decoding a message correctly.